import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

// StatelessWidget，这个控件金使用初始化的属性来展示给用户，这样就不需要持有任何状态，
// 因为父部件会控制其是否显示，这样父部件就管理了这个widget本身是否显示的状态了
//StatefulWidget  是动态的，他们允许我们创建一个能动随时间改变内容的widget，
// 并且不依赖于其初始化时被传入的静态状态，可以随着用户的输入，各种形式的异步回包或其他形式的状态变化而变化
//Flutter 双问号 ?? 确保返回非空 ?. 来确认前操作数不为空, 常用来替代. , 避免左边操作数为null引发异常
class IconTextWidget extends StatelessWidget {
  final IconData icon;
  final Widget widget;
  final GestureTapCallback onTap;
  final double mainAixSpacing;
  final Color iconColor;

  IconTextWidget(this.icon, this.widget,
      {this.onTap, this.mainAixSpacing = 0, this.iconColor});

  IconTextWidget.builder(this.icon, String label,
      {double labelSize,
      Color labelColor,
      this.onTap,
      this.mainAixSpacing,
      this.iconColor})
      : widget = Text(
          label,
          style: TextStyle(fontSize: labelSize, color: labelColor),
        );

  @override
  Widget build(BuildContext context) {
    return Container(
      child: InkWell(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Icon(icon, color: iconColor ?? Theme.of(context).iconTheme.color),
            SizedBox(height: mainAixSpacing),
            widget
          ],
        ),
        onTap: onTap,
      ),
    );
  }
}
